﻿using ByrForumAPI.Json;
using Newtonsoft.Json;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace ByrForumAPI.MetaData
{
    public class Article
    {
        //文章id
        [JsonProperty("id")]
        public int ID { get; internal set; }

        //该文章所属主题的id 
        [JsonProperty("group_id")]
        public int GroupId { get; internal set; }


        // 该文章回复文章的id  
        [JsonProperty("reply_id")]
        public int ReplyId { get; internal set; }

        //文章标记 分别是m g ; b u o 8 
        [JsonProperty("flag")]
        public string Flag { get; internal set; }

        //文章所在主题的位置或文章在默写浏览模式下的位置 /board/:name的非主题模式下为访问此文章的id，在/threads/:board/:id中为所在主题中的位置，其余为空
        [JsonProperty("position")]
        public string Position { get; internal set; }

        [JsonProperty("is_top")]
        public bool IsTop { get; internal set; }

        //该文章是否是主题帖
        [JsonProperty("is_subject")]
        public bool IsSuject { get; internal set; }

        //文章是否有附件
        [JsonProperty("has_attachment")]
        public bool HasAttachment { get; internal set; }

        //当前登陆用户是否对文章有管理权限 包括编辑，删除，修改附件
        [JsonProperty("is_admin")]
        public bool IsAdmin { get; internal set; }


        [JsonProperty("title")]
        public string Title { get; internal set; }

        //文章发表用户，这是一个用户元数据  
        [JsonProperty("user")]
        [JsonConverter(typeof(UserJsonConvert))]
        public User User { get; internal set; }

        //文章发表时间，unixtimestamp 
        [JsonProperty("post_time")]
        public int PostTime { get; internal set; }

        //所属版面名称
        [JsonProperty("board_name")]
        public string BoardName { get; internal set; }

        //文章内容 在/board/:name的文章列表和/search/(article|threads)中不存在此属性
        [JsonProperty("content")]
        public string Content { get; internal set; }

        // 文章附件列表，这是一个附件元数据 在/board/:name的文章列表和/search/(article|threads)中不存在此属性
        [JsonProperty("attachment")]
        public Attachment Attachment { get; internal set; }

        //该文章的前一篇文章id 只存在于/article/:board/:id中 
        [JsonProperty("previous_id")]
        public string PreviousId { get; internal set; }

        // 该文章的后一篇文章id 只存在于/article/:board/:id中
        [JsonProperty("next_id")]
        public string NextId { get; internal set; }

        //该文章同主题前一篇文章id 只存在于/article/:board/:id中 
        [JsonProperty("threads_previous_id")]
        public string ThreadsPreviousId { get; internal set; }

        //该主题回复文章数 只存在于/board/:name，/threads/:board/:id和/search/threads中
        [JsonProperty("reply_count")]
        public string ReplyCount { get; internal set; }

        //该文章最后回复者的id 只存在于/board/:name，/threads/:board/:id和/search/threads中
        [JsonProperty("last_reply_user_id")]
        public string LastReplyUserId { get; internal set; }

        //该文章最后回复的时间 unxitmestamp 只存在于/board/:name，/threads/:board/:id和/search/threads中
        [JsonProperty("last_reply_time")]
        public int LastReplyTime { get; internal set; }

    }
}
